package com.controlador;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.dao.ModeloDAO;
import com.modelo.Marca;
import com.modelo.Modelo;

@Component("modeloService")
public class ModeloController {
//	ClassPathXmlApplicationContext ctx;
	List<Modelo> modelos;
	private @Autowired ModeloDAO modeloDao;
	Vector<Modelo> vector_modelo;
	public ModeloController(){
//		ctx = cargarContexto();
	}
	
//	private ClassPathXmlApplicationContext cargarContexto(){
//		System.out.println("MarcaController cargarConexto()");
//		ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//		return ctx;
//	}
	
	public List<Modelo> buscarModelosElementoNuevo(int id){
//		ModeloDAO modeloDao = ctx.getBean("modeloDao", ModeloDAO.class);
		modeloDao.buscarModeloPorMarca(id);
		return modelos;
	}
	
	public Vector<Modelo> llenarModelos(){
		List<Modelo> modelos = new ArrayList<Modelo>(); 
		modelos = modeloDao.mostrar();
		vector_modelo = new Vector<Modelo>();
		for(Modelo m : modelos){
			vector_modelo.add(m);
			System.out.println("ModeloController llenarModelos() "+m.getId()+" "+m.getNombre());
		}
		return vector_modelo;
	}
	
	public List<Modelo> buscarModelosPorMarca(int id){
		List<Modelo> modelos = new ArrayList<Modelo>();
		modelos = modeloDao.buscarModeloPorMarca(id);
		return modelos;
	} 
	
	public List<Modelo> mostrarModelos(){
		return modeloDao.mostrar();
	}
	
	public boolean actualizar(Modelo modelo){
		if( modeloDao.actualizar(modelo) != null){
			return  true;
		}else{
			return false;
		}
	}
	
	public boolean insertar(Modelo modelo){
		if( modeloDao.insertar(modelo) > 0){
			return true;
		}else{
			return false;
		}
	}
	
	public boolean eliminar(int id){
		return modeloDao.eliminar(id);
	}
	
	public int verificarElementosPorModelo(int id){
		return modeloDao.numeroElementosPorModelo(id);
		
	}
	
	public boolean eliminarElementoPorModelo(int id){
		return modeloDao.eliminarElementosPorModelo(id);
	}
	
	public Vector<Modelo> buscarVectorModelosPorMarca(int id){
		List<Modelo> modelos = new ArrayList<Modelo>();
		Vector<Modelo> vec_mod = new Vector<Modelo>();
		modelos = modeloDao.buscarModeloPorMarca(id);
		for(Modelo m : modelos){
			vec_mod.add(m);
		}
		return vec_mod;
	} 
	
	public Modelo buscarModeloParaElemento(int idEl){
		return modeloDao.buscarModeloParaElemento(idEl);
	}

}
